package com.example.schoolhospitalsystem;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;

public class HomeActivity extends AppCompatActivity {

    private TextView tvWelcome;
    private Button btnAppointment, btnMedicalRecord, btnSchedule,btnUserInfoEdit;
    private ListView lvNotifications;
    private String userId, userRole;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        // 获取用户信息
        Intent intent = getIntent();
        userId = intent.getStringExtra("userId");
        userRole = intent.getStringExtra("userRole");

        // 初始化所有控件（重点：添加 lvNotifications 的初始化）
        tvWelcome = findViewById(R.id.tv_welcome);
        btnAppointment = findViewById(R.id.btn_appointment);
        btnMedicalRecord = findViewById(R.id.btn_medical_record);
        btnSchedule = findViewById(R.id.btn_schedule);
        btnUserInfoEdit = findViewById(R.id.btn_user_info_edit);
        // 新增：绑定 ListView 控件
        lvNotifications = findViewById(R.id.lv_notifications);

        // 设置欢迎信息
        String welcomeText = "欢迎，" + (userRole.equals("student") ? "学生" :
                userRole.equals("teacher") ? "教师" :
                        userRole.equals("doctor") ? "医生" : "管理医生") + " " + userId;
        tvWelcome.setText(welcomeText);

        // 根据用户角色设置按钮
        setupButtonsByRole();

        // 获取通知列表并设置适配器（此时 lvNotifications 已初始化，不会空指针）
        List<String> notificationList = getNotifications();
        ArrayAdapter<String> adapter = new ArrayAdapter<>(
                this, android.R.layout.simple_list_item_1, notificationList);
        lvNotifications.setAdapter(adapter);

        // 个人信息修改按钮点击事件
        btnUserInfoEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(HomeActivity.this, UserInfoEditActivity.class);
                intent.putExtra("userId", userId);
                startActivity(intent);
            }
        });
    }

    private void setupButtonsByRole() {
        if (userRole.equals("doctor")) {
            // 医生角色
            btnAppointment.setText("查看预约");
            btnAppointment.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 医生查看预约列表
                    Intent intent = new Intent(HomeActivity.this, DoctorAppointmentListActivity.class);
                    intent.putExtra("userId", userId);
                    startActivity(intent);
                }
            });

            btnMedicalRecord.setText("创建病历");
            btnMedicalRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 医生创建病历
                    Intent intent = new Intent(HomeActivity.this, CreateMedicalRecordActivity.class);
                    intent.putExtra("doctorId", userId);
                    startActivity(intent);
                }
            });

            btnSchedule.setText("排班管理");
            btnSchedule.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 医生排班管理
                    Intent intent = new Intent(HomeActivity.this, DoctorScheduleActivity.class);
                    intent.putExtra("doctorId", userId);
                    startActivity(intent);
                }
            });
        } else if (userRole.equals("admin_doctor")) {
            // 管理医生角色
            btnAppointment.setText("管理预约");
            btnAppointment.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 管理医生管理预约列表
                    Intent intent = new Intent(HomeActivity.this, AdminDoctorAppointmentListActivity.class);
                    intent.putExtra("userId", userId);
                    startActivity(intent);
                }
            });

            btnMedicalRecord.setText("管理病历");
            btnMedicalRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 管理医生管理病历列表
                    Intent intent = new Intent(HomeActivity.this, AdminDoctorMedicalRecordListActivity.class);
                    intent.putExtra("adminDoctorId", userId);
                    startActivity(intent);
                }
            });

            btnSchedule.setText("医生排班管理");
            btnSchedule.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 管理医生进行医生排班管理
                    Intent intent = new Intent(HomeActivity.this, AdminDoctorScheduleActivity.class);
                    intent.putExtra("adminDoctorId", userId);
                    startActivity(intent);
                }
            });
        } else {
            // 学生和教师角色
            btnAppointment.setText("预约挂号");
            btnAppointment.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 学生/教师预约挂号
                    Intent intent = new Intent(HomeActivity.this, AppointmentActivity.class);
                    intent.putExtra("userId", userId);
                    intent.putExtra("userRole", userRole);
                    startActivity(intent);
                }
            });

            btnMedicalRecord.setText("查看病历");
            btnMedicalRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 学生/教师查看病历
                    Intent intent = new Intent(HomeActivity.this, MedicalRecordListActivity.class);
                    intent.putExtra("patientId", userId);
                    startActivity(intent);
                }
            });

            // 学生和教师不显示排班管理按钮
            btnSchedule.setVisibility(View.GONE);
        }
    }

    private List<String> getNotifications() {
        // 这里应该从数据库获取通知列表
        // 简化示例，返回一些模拟数据
        List<String> notifications = new ArrayList<>();
        notifications.add("[重要通知] 疫苗预约开始，请符合条件的师生尽快预约");
        notifications.add("[系统通知] 医院将于2025年7月10日进行系统维护，当天可能无法正常预约");
        notifications.add("[体检通知] 2025年度教职工体检时间为7月15日至7月30日");
        notifications.add("[预约提醒] 您预约了7月2日上午张医生的门诊，请提前15分钟到达");
        return notifications;
    }
}